<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>layui 调试预览</title>
    <link rel="stylesheet" th:href="@{./layui/css/layui.css}" media="all">
    <script th:src="@{/echarts/jquery-1.11.1.min.js}"></script>
    <script th:src="@{./layui/layui.js}" charset="utf-8"></script>
    <style>
        body {
            margin: 10px;
        }
    </style>
</head>
<body class="childrenBody">

<!-- 模态窗 -->
<div id="addOrUpdateDiv" style="display: none; padding: 10px;padding-right: 5%;">
    <form action="" method="post" id="searchFrm2" lay-filter="searchFrm2" class="layui-form">
        <div class="layui-form-item">
            <input type="hidden" name="id">
            <div class="layui-inline">
                <label class="layui-form-label">省份名称</label>
                <div class="layui-input-inline">
                    <input type="text" name="name" id="chinaname" lay-verify="required" class="layui-input input-radius" placeholder="内弹窗：请输入省份名称">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">确诊数量</label>
                <div class="layui-input-inline">
                    <input type="text" name="value" id="chinavalue" lay-verify="required" class="layui-input input-radius" placeholder="内弹窗：请输入确诊数量">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">更新时间</label>
                <div class="layui-input-inline">
                    <input type="text" name="updateTime" class="layui-input" lay-verify="required" id="test1" placeholder="yyyy-MM-dd">
                </div>
            </div>
            <div class="layui-inline" style="padding-left: 10%">
                <button type="button" lay-event="add" class="layui-btn layui-btn-sm layui-btn-radius" lay-submit=""
                        lay-filter="doAdd">
                    <i class="layui-icon layui-icon-search layui-icon-normal"></i>新增/修改
                </button>
                <button type="reset" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-warm">
                    <i class="layui-icon layui-icon-refresh"></i><span>重置</span>
                </button>
            </div>
        </div>
    </form>
</div>

<div>
    <!-- 内容主体区域 -->
    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 15px;">
        <legend>搜索条件</legend>
    </fieldset>
    <!-- 搜索条件 -->
    <form action="" method="post" id="searchFrm" lay-filter="searchFrm" class="layui-form">
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">省份名称</label>
                <div class="layui-input-inline">
                    <input type="text" name="name" class="layui-input input-radius" placeholder="请输入省份名称">
                </div>
            </div>
            <div class="layui-inline" style="padding-left: 3%">
                <button type="button" class="layui-btn layui-btn-sm layui-btn-radius" lay-submit=""
                        lay-filter="doSearch">
                    <i class="layui-icon layui-icon-search layui-icon-normal"></i>查询
                </button>
                <button type="reset" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-warm">
                    <i class="layui-icon layui-icon-refresh"></i><span>重置</span>
                </button>
                <button type="button" class="layui-btn layui-btn-sm layui-btn-radius" lay-submit=""
                        lay-filter="doOutPortExcel">
                    <i class="layui-icon layui-icon-normal">&#xe654;</i>导出Excel疫情数据
                </button>
            </div>
        </div>
    </form>

    <!-- 文件上传的DIV -->
    <div class="layui-upload-drag" id="test10">
        <i class="layui-icon"></i>
        <p>点击上传，或将文件拖拽到此处</p>
        <div class="layui-hide" id="uploadDemoView">
            <hr>
            <img src="" alt="上传成功后渲染" style="max-width: 196px">
        </div>
    </div>

    <!-- table -->
    <div style="padding: 15px;">
        <table class="layui-hide" id="demo" lay-filter="test"></table>
    </div>
</div>

<script type="text/html" id="barDemo">
    <button type="button" lay-event="update" class="layui-btn layui-btn-sm layui-btn-radius">
        <i class="layui-icon layui-icon-edit" onclick="openAddLayer()"></i>编辑
    </button>
    <button type="button" lay-event="delete" class="layui-btn layui-btn-sm layui-btn-danger layui-btn-radius">
        <i class="layui-icon layui-icon-delete"></i>删除
    </button>
</script>

<script>
    layui.config({
        version: '1632428048355' //为了更新 js 缓存，可忽略
    });

    var tableIns;
    var mainIndex;

    //加载模块
    layui.use(['upload','jquery'], function () {
        var layer = layui.layer //弹层
            , $ = layui.jquery
            , laypage = layui.laypage //分页
            , laydate = layui.laydate //日期
            , table = layui.table //表格
            , carousel = layui.carousel //轮播
            , upload = layui.upload //上传
            , element = layui.element //元素操作
            , slider = layui.slider //滑块
            , dropdown = layui.dropdown //下拉菜单
            , form = layui.form;

        laydate.render({
            elem: '#test1',
            type: 'datetime'
        })

        //向世界问个好
        layer.msg('谨慎修改疫情数据');

        //监听Tab切换
        element.on('tab(demo)', function (data) {
            layer.tips('切换了 ' + data.index + '：' + this.innerHTML, this, {
                tips: 1
            });
        });

        //拖拽上传
        upload.render({
            elem: '#test10'
            ,url: '/excelImportChina'
            ,accept: 'file' //普通文件
            ,done: function(res){
                layer.msg(res.msg);
            }
        });

        //执行一个 table 实例
        tableIns = table.render({
            elem: '#demo'
            , height: 420
            , url: '/listDataByPage' //数据接口
            , title: '用户表'
            , page: true //开启分页
            , toolbar: 'default' //开启工具栏，此处显示默认图标
            , totalRow: true //开启合计行
            , cols: [ [ //表头,注意这里的空格不要删
                {type: 'checkbox', fixed: 'left'}
                , {field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left', totalRowText: '合计：'}
                , {field: 'name', title: '省份名称', width: 150}
                , {field: 'value', title: '确诊人数', width: 150, sort: true}
                , {field: 'updateTime', title: '更新时间', align: 'center',width:'110'
                    , templet : "<div>{{layui.util.toDateString(d.updateTime, 'yyyy-MM-dd')}}</div>"}
                , {fixed: 'right', width: 200, align: 'center', toolbar: '#barDemo'}
            ] ]
        });

        //监听头工具栏事件 新增 修改 和 删除
        table.on('toolbar(test)', function (obj) {
            var data = obj.data; //获取选中的数据
            switch (obj.event) {
                case 'add':
                    // 调出弹窗
                    openAddLayer();
                    break;
                case 'update':
                    // 调出编辑弹窗，加载一次数据 1.回显数据
                    openAddLayer(data);
                    break;
                case 'delete':
                    if (data.length === 0) {
                        layer.msg('请选择一行');
                    } else {
                        layer.msg('删除');
                    }
                    break;
            }
            ;
        });

        // 删除和编辑，监听行工具事件
        table.on('tool(test)', function (obj) {
            var data = obj.data //获得当前行数据
                , layEvent = obj.event; //获得 lay-event 对应的值
            if (layEvent === 'update') {
                // 更新的逻辑代码
                openAddLayer(data);
            } else if (layEvent === 'delete') {
                layer.confirm('真的删除行么', function (index) {
                    obj.del(); //删除对应行（tr）的DOM结构

                    //向服务端发送删除指令
                    $.post("/china/deleteById", {id: obj.data.id}, function (res) {
                        if (res.code == 200) {
                            tableIns.reload({
                                where: "",
                            });
                        }
                        layer.msg(res.msg);
                    })
                    layer.close(index);
                });
            }
        });

        // 模糊查寻
        form.on("submit(doSearch)", function (data) {
            tableIns.reload({
                where: data.field,
                page: {
                    curr: 1
                }
            });
            return false;
        })

        // 新增数据请求
        form.on("submit(doAdd)", function (data) {
            $.post("/china/addOrUpdateChina", data.field, function (res) {
                if (res.code == 200) {
                    tableIns.reload();
                }
                layer.msg(res.msg);
                layer.close(mainIndex);
            })
            return false;
        })


        // 模态窗  // 页面层
        function openAddLayer(data) {
            mainIndex = layer.open({
                type: 1,
                skin: 'layui-layer-rim', //加上边框
                content: $("#addOrUpdateDiv"),
                area: ['380px', '250px'],
                success:function () {
                    $("#searchFrm2")[0].reset();
                    form.val("searchFrm2",data);
                }
            })
        }

        // 导出Excel数据
        form.on("submit(doOutPortExcel)",function () {
            window.location.href= "/excelOutPortChina"
        })

        //分页
        laypage.render({
            elem: 'pageDemo' //分页容器的id
            , count: 1000 //数据总数
            , limit: 10 //每页显示的数据条数
            , skin: '#1E9FFF' //自定义选中色值
            //,layout: ['prev', 'page', 'next', 'count', 'limit', 'refresh', 'skip'] //自定义排版
            , jump: function (obj, first) {
                if (!first) {
                    layer.msg('第' + obj.curr + '页', {offset: 'b'});
                }
            }
        });

    });
</script>
</body>
</html>
